home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / daemons / init / sysvinit.000 / sysvinit / sysvinit-2.64 / runlevel.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-29  |  1.0 KB  |  46 lines

  1. /*
  2.  * runlevel    Prints out the previous and the current runlevel.
  3.  *
  4.  * Version:    @(#)runlevel  1.10  29-Feb-1996  MvS
  5.  *
  6.  *        This file is part of the sysvinit suite,
  7.  *        Copyright 1991-1996 Miquel van Smoorenburg.
  8.  *
  9.  *        This program is free software; you can redistribute it and/or
  10.  *        modify it under the terms of the GNU General Public License
  11.  *        as published by the Free Software Foundation; either version
  12.  *        2 of the License, or (at your option) any later version.
  13.  */
  14.  
  15. #include <stdio.h>
  16. #include <utmp.h>
  17. #include <time.h>
  18. #include <stdlib.h>
  19.  
  20. int main(argc, argv)
  21. int argc;
  22. char **argv;
  23. {
  24.   FILE *fp;
  25.   struct utmp ut;
  26.   char *file = UTMP_FILE;
  27.   char prev;
  28.  
  29.   if (argc > 1) file = argv[1];
  30.   if ((fp = fopen(file, "r")) != NULL) {
  31.     while (fread(&ut, sizeof(struct utmp), 1, fp) == 1) {
  32.     if (ut.ut_type == RUN_LVL) {
  33.         prev = ut.ut_pid / 256;
  34.         if (prev == 0) prev = 'N';
  35.         printf("%c %c\n", prev, ut.ut_pid % 256);
  36.         fclose(fp);
  37.         exit(0);
  38.     }
  39.     }
  40.   }
  41.   
  42.   printf("unknown\n");
  43.   if (fp) fclose(fp);
  44.   return(1);
  45. }
  46.